﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using Website.Logger;
using DAL;
using UtilityExtensions;
using BOL;
using BOL.Ventas;
using BOL.UI;
using WebLib;
using System.Web.Script.Services;
using System.Web.Services;


namespace UILGestion.VentaAdmin.OrdenVenta
{
    public partial class NotaCreditoReadForm : System.Web.UI.Page
    {
        public NotaCreditoReadForm()
        {
            bol = new DocumentoVentaBL();
            _db = new dbGestionDataContext(DbUtil.strConnString);
        }

        private DocumentoVentaBL bol;

        private dbGestionDataContext _db;
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                try
                {
                    
                    internalID.Value = (string)Request.QueryString["id"];
                    
                    idProyecto.Value = (string)Request.QueryString["idProyecto"];
                    paginaAnt.Value = Page.Request.UrlReferrer.AbsoluteUri;
                    menuCtrl1.loadMenuVenta(idProyecto.Value.ToInt());
                    FormatForm();

                }
                catch (SqlException sqlex)
                {
                    WebServerSideSqlError.Log(sqlex);

                    ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                     "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


                }
                catch (Exception ex)
                {
                    WebServerSideError.Log(ex);
                    ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                         "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

                }

            }
        }

        private void FormatForm()
        {

           
            Load();

            //OrdenVentaRequerisitoItem1.Load(internalID.Value,idProyecto.Value.ToInt());
           

        }

       
        private void Load()
        {
            DAL.DocumentoVenta documentoVenta= DbUtil.Db.DocumentoVentas.Single(p => p.idInternal == internalID.Value.ToInt());

            tipoDocumentoDDL.Text = documentoVenta.DocumentoTipo.descripcion;
            numDocumento.Text = "{0}-{1}".Fmt(documentoVenta.serie,documentoVenta.numeroDoc);
            OrdenVentaHLK.Text = documentoVenta.OrdenVentaItem.OrdenVenta.numDocumento;
            OrdenVentaHLK.NavigateUrl = "~/VentaAdmin/OrdenVenta/OrdenVentaReadForm.aspx?id={0}&idProyecto={1}".Fmt(documentoVenta.OrdenVentaItem.idOrdenVenta,documentoVenta.idProyecto);

            fechaTXT.Text = documentoVenta.fecha.ToShortDateString();
            monedaLBL.Text = documentoVenta.Moneda.descripcion;
            tipoDocumento.Text = documentoVenta.TipoDocumento.abreviacion;
            numDocumentoClienteTXT.Text = documentoVenta.documentoCliente;

            DAL.Menu menu = DbUtil.Db.Menus.Single(p => p.idInternal == 111);//cliente
            //---------------------
            string val = String.Format("{0}?Type=A&id={1}",
                                                          menu.url,
                                                          documentoVenta.idCliente);

            clienteLBL.Text = documentoVenta.nombreCliente;
            clienteLBL.NavigateUrl = "javascript:loadTabFromForm('tab{0}','{1}','{2}');".Fmt(menu.idAplicacion,
                                                                                              menu.Aplicacion.title,
                                                                                              val);
            //------------------------

            direccionLBL.Text = documentoVenta.direccion;
            //conceptoDDL.Text = documentoVenta.ConceptoItem.descripcion;

            
             vendedorLBL.Text=documentoVenta.usuarioCre;  
            comentarioTXT.Text=documentoVenta.comentario;

            simbol1LBL.Text = documentoVenta.Moneda.simbol;
            simbol2LBL.Text = documentoVenta.Moneda.simbol;
            simbol3LBL.Text = documentoVenta.Moneda.simbol;
            simbol4LBL.Text = documentoVenta.Moneda.simbol;

            montoInafectoLBL.Text=documentoVenta.total.ToString("N");
            montoAfectoLBL.Text=documentoVenta.SubTotal.ToString("N");
            totalIGVLBL.Text=documentoVenta.IGVTotal.ToString("N");
            totalLabel.Text=documentoVenta.total.ToString("N");


            UILBL.Text = documentoVenta.OrdenVentaItem.UI.descripcion;
            UILBL.NavigateUrl = "~/VentaAdmin/UI/UIReadForm.aspx?id={0}&idProyecto={1}".Fmt(documentoVenta.OrdenVentaItem.idUI, documentoVenta.OrdenVentaItem.UI.Etapa.idProyecto);
            

            LoadItem(documentoVenta.idInternal);
        }

        private void LoadItem(int idParent)
        {

            var ordenVentaItemList = bol.GetDocumentoVentaItem(idParent);

            itemGridView.DataSource=ordenVentaItemList;
            itemGridView.DataBind();
                
        }
        protected void button(object sender, EventArgs e)
        {
            try
            {
                if (((Button)sender).ID == refreshBTN.ID)
                {
                    FormatForm();
                }
                if (((Button)sender).ID==nuevoBTN.ID)
                {
                    Response.Redirect("~/VentaAdmin/DocumentoVenta/DocumentoVentaOPTEditForm.aspx?type=A&idProyecto={0}".Fmt(idProyecto.Value), true);
                }
                //if (((Button)sender).ID == EditarBTN.ID)
                //{
                //    Response.Redirect("~/VentaAdmin/DocumentoVenta/DocumentoVentaEditForm.aspx?type=E&id={0}&idProyecto={1}".Fmt(internalID.Value, idProyecto.Value), true);
                //}
                if (((Button)sender).ID == eliminarBTN.ID)
                {
                    bol.Delete(_db,internalID.Value.ToInt());
                    Response.Redirect(paginaAnt.Value, true);
                }
                if (((Button)sender).ID == AnularBTN.ID)
                {
                    bol.Anular(internalID.Value.ToInt());
                    Response.Redirect(paginaAnt.Value, true);
                }
                if (((Button)sender).ID == ListaBTN.ID)
                {
                    Response.Redirect("~/VentaAdmin/DocumentoVenta/DocumentoVentaListForm.aspx?type=E&idProyecto={0}".Fmt(idProyecto.Value), true);
                }

                
                if (((Button)sender).ID == anteriorBTN.ID)
                {
                    //int idAnterior=new DAL.DocumentoVenta().getidAnterior(DbUtil.Db, internalID.Value.ToInt(),idEtapa.Value.ToInt()); //proyecto venta
                    //Response.Redirect("~/VentaAdmin/Document/OrdenVentaReadForm.aspx?type=E&id={0}".Fmt(idAnterior), true);
                }
                if (((Button)sender).ID == siguienteBTN.ID)
                {
                    //int idSiguiente = new DAL.DocumentoVenta().getidAnterior(DbUtil.Db, internalID.Value.ToInt(), idEtapa.Value.ToInt()); //proy
                    //Response.Redirect("~/VentaAdmin/OrdenVenta/OrdenVentaReadForm.aspx?type=E&id={0}".Fmt(idSiguiente), true);
                }

            }
            catch (SqlException sqlex)
            {
                WebServerSideSqlError.Log(sqlex);

                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                 "uniqueKey" + DateTime.Now, "alert('" + sqlex.Message.Replace("'", "") + "');", true);


            }
            catch (Exception ex)
            {
                WebServerSideError.Log(ex);
                ScriptManager.RegisterClientScriptBlock(this, typeof(Page),
                     "uniqueKey" + DateTime.Now, "alert('" + ex.Message.Replace("'", "") + "');", true);

            }
        }

    }
}